home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the 3D Game Programming Gurus / gurus.iso / DirectX / dx9sdkcp.exe / SDK (C++) / Include / DShowIDL / Bdatif.idl < prev    next >
Encoding:
Text File  |  2002-11-12  |  22.3 KB  |  679 lines

  1. //---------------------------------------------------------------------
  2. //
  3. //  Copyright (c) 1999-2002 Microsoft Corporation
  4. //
  5. //  BDATIF.idl
  6. //
  7. //---------------------------------------------------------------------
  8.  
  9. cpp_quote("//+-------------------------------------------------------------------------")
  10. cpp_quote("//")
  11. cpp_quote("//  Microsoft Windows")
  12. cpp_quote("//  Copyright (C) Microsoft Corporation, 1999-2002.")
  13. cpp_quote("//")
  14. cpp_quote("//--------------------------------------------------------------------------")
  15. cpp_quote("#if ( _MSC_VER >= 800 )")
  16. cpp_quote("#pragma warning(disable:4201)    /* Nameless struct/union */")
  17. cpp_quote("#endif")
  18. cpp_quote("#if ( _MSC_VER >= 1020 )")
  19. cpp_quote("#pragma once")
  20. cpp_quote("#endif")
  21.  
  22.  
  23. //---------------------------------------------------------------------
  24. // IUnknown import idl
  25. //---------------------------------------------------------------------
  26.  
  27. #ifndef DO_NO_IMPORTS
  28. import "unknwn.idl";
  29. import "strmif.idl";
  30. import "tuner.idl";
  31. import "bdaiface.idl";
  32. #endif
  33.  
  34.  
  35. interface IMPEG2_TIF_CONTROL;
  36. interface IATSCChannelInfo;
  37. interface IMPEG2PIDMap;
  38.  
  39.  
  40.  
  41.  
  42. //******************************************************************************
  43. //
  44. //  IBDA_TIF_REGISTRATION interface
  45. //
  46. //  Implemented by the Microsoft ATSC/DVB BDA Network Provider
  47. //
  48. //      Used by a transport information filter (TIF) to Register with the NP 
  49. //    AND obtain an Interface to the Demux to set/ Remove PIDs.The TIF here passes 
  50. //      IUNKNOWN of the pin it is connecting to and obtains the IMPEG2PIDMAP interface
  51. //      implemented by the NP to Map/ UnMap pids.
  52. //
  53.  
  54. [
  55.     object,
  56.     uuid(DFEF4A68-EE61-415f-9CCB-CD95F2F98A3A),
  57.     helpstring("BDA Network Provider Registration Inteface for DVB/ATSC Transport Information Filters"),
  58.     pointer_default(unique)
  59. ]
  60. interface IBDA_TIF_REGISTRATION : IUnknown
  61. {
  62.  
  63.     [helpstring("Used to register a transport analyzer with the Network Provider")]
  64.     HRESULT
  65.     RegisterTIFEx (
  66.         [in]  IPin *    pTIFInputPin,
  67.         [in, out] ULONG *   ppvRegistrationContext,
  68.         [in, out] IUnknown **    ppMpeg2DataControl
  69.         );
  70.  
  71.     [helpstring("Used to unregister TIF with the Network Provider")]
  72.     HRESULT
  73.     UnregisterTIF (
  74.         [in] ULONG          pvRegistrationContext
  75.         );
  76. }
  77.  
  78.  
  79. //******************************************************************************
  80. //
  81. //  IMPEG2_TIF_CONTROL interface
  82. //
  83. //  Implemented by the Microsoft ATSC/DVB BDA Network Provider
  84. //
  85. //      Used by a transport information filter (TIF) to request table
  86. //      sections carried on specific PIDs within the transport stream.
  87. //      The Network Provider Filter will, in turn, do the necessary
  88. //      control on the Demux Filter. All sections are delivered as comlete
  89. //      mpeg2 table sections via the TIF's connection to the Demux Filter.
  90. //
  91. [
  92.     object,
  93.     uuid(F9BAC2F9-4149-4916-B2EF-FAA202326862),
  94.     helpstring("BDA Network Provider Inteface for DVB/ATSC Transport Information Filters"),
  95.     pointer_default(unique)
  96. ]
  97. interface IMPEG2_TIF_CONTROL : IUnknown
  98. {
  99.  
  100.     [helpstring("Used to register a transport analyzer with the Network Provider")]
  101.     HRESULT
  102.     RegisterTIF (
  103.         [in]  IUnknown *    pUnkTIF,
  104.         [in, out] ULONG *   ppvRegistrationContext
  105.     );
  106.  
  107.     [helpstring("Used to unregister TIF with the Network Provider")]
  108.     HRESULT
  109.     UnregisterTIF (
  110.         [in] ULONG          pvRegistrationContext
  111.         );
  112.  
  113.     [helpstring("Used to add PSI/SI MPEG2 packet IDs to the TIF's data stream")]
  114.     HRESULT
  115.     AddPIDs (
  116.         [in] ULONG      ulcPIDs,
  117.         [in] ULONG *    pulPIDs
  118.         );
  119.  
  120.     [helpstring("Used to remove PSI/SI MPEG2 packet IDs from the TIF's data stream")]
  121.     HRESULT
  122.     DeletePIDs (
  123.         [in] ULONG      ulcPIDs,
  124.         [in] ULONG *    pulPIDs
  125.         );
  126.  
  127.     [helpstring("Returns the number of MPEG2 Packet IDs being filtered into the TIF's input data.")]
  128.     HRESULT
  129.     GetPIDCount (
  130.         [out] ULONG *   pulcPIDs
  131.         );
  132.  
  133.     [helpstring("Returns the the list of MPEG2 Packet IDs being filtered into the TIF's input data.")]
  134.     HRESULT
  135.     GetPIDs (
  136.         [out] ULONG *   pulcPIDs,
  137.         [out] ULONG *   pulPIDs
  138.         );
  139.  
  140. }
  141.  
  142.  
  143. //******************************************************************************
  144. //
  145. //  ITuneRequestInfo interface
  146. //
  147. //  Implemented by a BDA transport information filter (TIF)
  148. //
  149. //      Used by the BDA Network Provider to obtain network specific
  150. //      information about locating transport streams and aquiring
  151. //      services.
  152. //
  153. //
  154. //      GetLocatorData -
  155. //
  156. //      GetComponentData -
  157. //
  158. //      CreateComponentList -
  159. //
  160. //      GetNextService -
  161. //
  162. //      GetPreviouService -
  163. //
  164. //      GetNextLocator -
  165. //
  166. //      GetPreviousLocator -
  167. //
  168. [
  169.     object,
  170.     uuid(A3B152DF-7A90-4218-AC54-9830BEE8C0B6),
  171.     helpstring("Interface provided by the Mpeg2 Transport Information Filter to supply tuning details."),
  172.     pointer_default(unique)
  173. ]
  174. interface ITuneRequestInfo : IUnknown
  175. {
  176.  
  177.     [helpstring("TIF fills in channel/program locator information for the given tune request.")]
  178.     HRESULT
  179.     GetLocatorData (
  180.         [in]  ITuneRequest *Request
  181.         );
  182.  
  183.     [helpstring("TIF fills in all network specific component data for the existing component list on the given tune request.")]
  184.     HRESULT
  185.     GetComponentData (
  186.         [in]  ITuneRequest *CurrentRequest
  187.         );
  188.  
  189.     [helpstring("TIF creates a complete component list and fills in all network specific component data on the given tune request")]
  190.     HRESULT
  191.     CreateComponentList (
  192.         [in]  ITuneRequest *CurrentRequest
  193.         );
  194.  
  195.     [helpstring("TIF creates a new TuneRequest with channel/program locator information for the next service.")]
  196.     HRESULT
  197.     GetNextProgram (
  198.         [in]  ITuneRequest *CurrentRequest,
  199.         [out, retval] ITuneRequest **TuneRequest
  200.         );
  201.  
  202.     [helpstring("TIF creates a new TuneRequest with channel/program locator information for the previous service.")]
  203.     HRESULT
  204.     GetPreviousProgram (
  205.         [in]  ITuneRequest *CurrentRequest,
  206.         [out, retval] ITuneRequest **TuneRequest
  207.         );
  208.  
  209.     [helpstring("TIF creates a new TuneRequest with locator information for the next transport stream.")]
  210.     HRESULT
  211.     GetNextLocator (
  212.         [in]  ITuneRequest *CurrentRequest,
  213.         [out, retval] ITuneRequest **TuneRequest
  214.         );
  215.  
  216.     [helpstring("TIF creates a new TuneRequest with locator information for the previous transport stream.")]
  217.     HRESULT
  218.     GetPreviousLocator (
  219.         [in]  ITuneRequest *CurrentRequest,
  220.         [out, retval] ITuneRequest **TuneRequest
  221.         );
  222. }
  223.     
  224.  
  225. //******************************************************************************
  226. //
  227. //  IGuideDataEvent
  228. //
  229. //  This is the guide data event notification callback interface.  The
  230. //  callback interface is registered on a transport analyzer's
  231. //  IConnectionPoint by the event consumer.
  232. //
  233. //  The event consumer MUST NOT BLOCK THE CALLING THREAD.
  234. //
  235. //  If the consumer requires additional information about the event, it
  236. //  should queue the event to a separate thread.    
  237. //
  238. // {EFDA0C80-F395-42c3-9B3C-56B37DEC7BB7}
  239. //
  240. [
  241.     object,
  242.     uuid(EFDA0C80-F395-42c3-9B3C-56B37DEC7BB7),
  243.     helpstring("Consumers of a guide data events must implement this callback interface."),
  244.     pointer_default(unique)
  245. ]
  246. interface IGuideDataEvent : IUnknown
  247. {
  248.     //  Indicates that a complete set of guide data has been acquire from
  249.     //  the current transport stream.
  250.     //
  251.     //  MANDATORY - If a transport analyzer supports IGuideDataEvent then
  252.     //              it must supply this event.
  253.     //
  254.     HRESULT GuideDataAcquired(
  255.         );
  256.         
  257.     //  Indicates that information about one or more programs changed.
  258.     //
  259.     //  If varProgramDescriptionID is NULL then the consumer
  260.     //  must get properties for all programs to determine which ones
  261.     //  changed.
  262.     //
  263.     //  MANDATORY - If a transport analyzer supports IGuideDataEvent then
  264.     //              it must supply this event.
  265.     //
  266.     HRESULT ProgramChanged(
  267.         [in] VARIANT    varProgramDescriptionID
  268.         );
  269.         
  270.     //  Indicates that information about one or more services changed.
  271.     //
  272.     //  If varServiceDescriptionID is NULL then the consumer
  273.     //  must get properties for all services to determine which ones
  274.     //  changed.
  275.     //
  276.     //  MANDATORY - If a transport analyzer supports IGuideDataEvent then
  277.     //              it must supply this event.
  278.     //
  279.     HRESULT ServiceChanged(
  280.         [in] VARIANT    varServiceDescriptionID
  281.         );
  282.         
  283.     //  Indicates that information about one or more schedule entries
  284.     //  changed.
  285.     //
  286.     //  If varScheduleEntryDescriptionID is NULL then the consumer
  287.     //  must get properties for all schedule entries to determine which ones
  288.     //  changed.
  289.     //
  290.     //  MANDATORY - If a transport analyzer supports IGuideDataEvent then
  291.     //              it must supply this event.
  292.     //
  293.     HRESULT ScheduleEntryChanged(
  294.         [in] VARIANT    varScheduleEntryDescriptionID
  295.         );
  296.         
  297.     //  Indicates that the program with the given Description.ID
  298.     //  has been deleted.
  299.     //  
  300.     //
  301.     //  Optional - Transport analyzer may supply this event.  Consumer
  302.     //             may return E_NOTIMPL.   
  303.     //
  304.     HRESULT ProgramDeleted(
  305.         [in] VARIANT    varProgramDescriptionID
  306.         );
  307.         
  308.     //  Indicates that the service with the given Description.ID
  309.     //  has been deleted.
  310.     //  
  311.     //
  312.     //  Optional - Transport analyzer may supply this event.  Consumer
  313.     //             may return E_NOTIMPL.   
  314.     //
  315.     HRESULT ServiceDeleted(
  316.         [in] VARIANT    varServiceDescriptionID
  317.         );
  318.         
  319.         
  320.     //  Indicates that the schedule entry with the given Description.ID
  321.     //  has been deleted.
  322.     //  
  323.     //
  324.     //  Optional - Transport analyzer may supply this event.  Consumer
  325.     //             may return E_NOTIMPL.   
  326.     //
  327.     HRESULT ScheduleDeleted(
  328.         [in] VARIANT    varScheduleEntryDescriptionID
  329.         );
  330. }
  331.     
  332.  
  333. //******************************************************************************
  334. //
  335. //  IGuideDataPropery
  336. //
  337. // {88EC5E58-BB73-41d6-99CE-66C524B8B591}
  338. //
  339. [
  340.     object,
  341.     uuid(88EC5E58-BB73-41d6-99CE-66C524B8B591),
  342.     helpstring("Interface provided by a transport analyzer to represent a guide data property."),
  343.     pointer_default(unique)
  344. ]
  345. interface IGuideDataProperty : IUnknown
  346. {
  347.     [propget] HRESULT Name([out] BSTR *pbstrName);
  348.     [propget] HRESULT Language([out] long *idLang);
  349.     [propget] HRESULT Value([out] VARIANT *pvar);
  350. }
  351.  
  352.  
  353. //******************************************************************************
  354. //
  355. //  IEnumGuideDataProperties
  356. //
  357. // {AE44423B-4571-475c-AD2C-F40A771D80EF}
  358. //
  359. [
  360.     object,
  361.     uuid(AE44423B-4571-475c-AD2C-F40A771D80EF),
  362.     helpstring("Interface provided by a transport analyzer to enumerate guide data properties."),
  363.     pointer_default(unique)
  364. ]
  365. interface IEnumGuideDataProperties : IUnknown
  366. {
  367.     HRESULT Next([in] unsigned long celt, [out] IGuideDataProperty **ppprop, [out] unsigned long *pcelt);
  368.     HRESULT Skip([in] unsigned long celt);
  369.     HRESULT Reset();
  370.     HRESULT Clone([out] IEnumGuideDataProperties **ppenum);
  371. }
  372.  
  373.  
  374. //******************************************************************************
  375. //
  376. //  IEnumTuneRequests
  377. //
  378. // {1993299C-CED6-4788-87A3-420067DCE0C7}
  379. //
  380. [
  381.     object,
  382.     uuid(1993299C-CED6-4788-87A3-420067DCE0C7),
  383.     helpstring("Interface provided by a transport analyzer to enumerate service tune requests ."),
  384.     pointer_default(unique)
  385. ]
  386. interface IEnumTuneRequests : IUnknown
  387. {
  388.     HRESULT Next([in] unsigned long celt, [out] ITuneRequest **ppprop, [out] unsigned long *pcelt);
  389.     HRESULT Skip([in] unsigned long celt);
  390.     HRESULT Reset();
  391.     HRESULT Clone([out] IEnumTuneRequests **ppenum);
  392. }
  393.  
  394.  
  395. //******************************************************************************
  396. //
  397. //  IGuideData
  398. //
  399. // {61571138-5B01-43cd-AEAF-60B784A0BF93}
  400. //
  401. [
  402.     object,
  403.     uuid(61571138-5B01-43cd-AEAF-60B784A0BF93),
  404.     helpstring("Interface provided by a transport analyzer to supply guide data information."),
  405.     pointer_default(unique)
  406. ]
  407. interface IGuideData : IUnknown
  408. {
  409.     //-------------------------------------------------------------------------
  410.     //
  411.     //  GetServices
  412.     //      Returns an enumeration of tune requests for all services whose
  413.     //        information is found in the current transport stream.
  414.     //
  415.     //  Parameters
  416.     //
  417.     //      IEnumTuneRequests **
  418.     //          Location in which a reference to the resulting
  419.     //          IEnumTuneRequests is placed.  The caller must release
  420.     //          this reference when finished with it.
  421.     //
  422.     //  Comments
  423.     //      This call is used to enumerate all services whose information
  424.     //        can be found in the service descriptor table. Each tune request
  425.     //        in the IEnumTuneRequest * contains the tune request including the
  426.     //        locator data for the service.
  427.     // 
  428.     [helpstring("Returns an enumeration of services whose information is found in the given transport stream")]
  429.     HRESULT
  430.     GetServices (
  431.         [out, retval]  IEnumTuneRequests **      ppEnumTuneRequests
  432.         );
  433.  
  434.  
  435.     //-------------------------------------------------------------------------
  436.     //
  437.     //  GetServiceProperties
  438.     //      Returns an enumeration of all guide data properties for
  439.     //      the service with the given Description.ID.
  440.     //
  441.     //  Parameters
  442.     //      ITuneRequest *  
  443.     //          Pointer to a tune request that contains information needed
  444.     //          to indentify the requested transport stream.
  445.     //          A NULL ITuneRequest * indicates that information about the
  446.     //          current transport stream is requested.
  447.     //
  448.     //      IEnumGuideDataProperties **
  449.     //          Location in which a reference to the resulting
  450.     //          IEnumGuideDataProperties is placed.  The caller must release
  451.     //          this reference when finished with it.
  452.     //
  453.     //  Required Properties
  454.     //      The following properties MUST be included in the returned
  455.     //      property enumeration.
  456.     //
  457.     //      Description.ID
  458.     //          Uniquely identifies a service.
  459.     //
  460.     //      Description.Name
  461.     //          The default name to use for this service in the channel lineup.
  462.     //
  463.     //      Description.Version
  464.     //          Identifies the current version of the properties associated
  465.     //          with this service.
  466.     //
  467.     //      Provider.Name
  468.     //          Name of the service provider (e.g. "KCTS")
  469.     //
  470.     //      Provider.NetworkName
  471.     //          Name of the network on which the service is provided.
  472.     //          (e.g. "PBS")
  473.     //
  474.     //      Service.TuneRequest
  475.     //          Contains a tune request in the variant
  476.     //
  477.     // 
  478.     [helpstring("Returns an enumeration of all guide data properties for the service specified by a tune request.")]
  479.     HRESULT
  480.     GetServiceProperties (
  481.         [in]           ITuneRequest *               pTuneRequest,
  482.         [out, retval]  IEnumGuideDataProperties **  ppEnumProperties
  483.         );
  484.  
  485.     //-------------------------------------------------------------------------
  486.     //
  487.     //  GetProgramIDs
  488.     //      Returns an enumeration of the unique identifiers (Description.ID)
  489.     //      of programs with description contained in all transport
  490.     //      streams
  491.     //
  492.     //  Parameters
  493.     //
  494.     //      IEnumVARIANT **
  495.     //          Location in which a reference to the resulting
  496.     //          IEnumVARIANT is placed.  The caller must release
  497.     //          this reference when finished with it.
  498.     //
  499.     //  Comments
  500.     //      This call is used to get a list of programs that have
  501.     //      guide data properties in all transport streams.
  502.     //      Each variant returned in the IEnumVARIANT * contains the
  503.     //      unique Description.ID property for a program.
  504.     //      Note that more than on transport stream may contain properties
  505.     //      for the same program.  In this case the properties should be
  506.     //      merged. 
  507.     // 
  508.     [helpstring("Returns an enumeration of the Description.ID property for all programs on the given transport stream.")]
  509.     HRESULT
  510.     GetGuideProgramIDs (
  511.         [out, retval]  IEnumVARIANT **      pEnumPrograms
  512.         );
  513.  
  514.     //-------------------------------------------------------------------------
  515.     //
  516.     //  GetProgramProperties
  517.     //      Returns an enumeration of all guide data properties for
  518.     //      the program with the given Description.ID.
  519.     //
  520.     //  Parameters
  521.     //      varProgramDescriptionID 
  522.     //          Variant containing the unique identifier for the program
  523.     //          for which properties are requested.
  524.     //
  525.     //      IEnumGuideDataProperties **
  526.     //          Location in which a reference to the resulting
  527.     //          IEnumGuideDataProperties is placed.  The caller must release
  528.     //          this reference when finished with it.
  529.     //
  530.     //  Required Properties
  531.     //      The following properties MUST be included in the returned
  532.     //      property enumeration.
  533.     //
  534.     //      Description.ID
  535.     //          Uniquely identifies a program.
  536.     //
  537.     //      Description.Version
  538.     //          Identifies the current version of the properties associated
  539.     //          with this program.
  540.     //
  541.     //      Description.Title
  542.     //          Human readable title of the program (e.g. "")
  543.     //
  544.     //      Description.Long
  545.     //          A description of the program.
  546.     // 
  547.     [helpstring("Returns an enumeration of all guide data properties for the program with the given Description.ID.")]
  548.     HRESULT
  549.     GetProgramProperties (
  550.         [in]           VARIANT                      varProgramDescriptionID,
  551.         [out, retval]  IEnumGuideDataProperties **  ppEnumProperties
  552.         );
  553.  
  554.     //-------------------------------------------------------------------------
  555.     //
  556.     //  GetScheduleIDs
  557.     //      Returns an enumeration of the unique identifiers (Description.ID)
  558.     //      transport of schedule entries with description contained in the
  559.     //      given transport stream.
  560.     //
  561.     //  Parameters
  562.     //
  563.     //      IEnumVARIANT **
  564.     //          Location in which a reference to the resulting
  565.     //          IEnumVARIANT is placed.  The caller must release
  566.     //          this reference when finished with it.
  567.     //
  568.     //  Comments
  569.     //      This call is used to get a list of schedule entries that have
  570.     //      guide data properties in all transport streams.
  571.     //      Each variant returned in the IEnumVARIANT * contains the
  572.     //      unique Description.ID property for a schedule entry.
  573.     //      Note that more than on transport stream may contain properties
  574.     //      for the same schedule entry.  In this case the properties
  575.     //      should be merged. 
  576.     // 
  577.     [helpstring("Returns an enumeration of the Description.ID property for all schedule entries in the transport stream specified by a tune request.")]
  578.     HRESULT
  579.     GetScheduleEntryIDs (
  580.         [out, retval]  IEnumVARIANT **      pEnumScheduleEntries
  581.         );
  582.  
  583.     //-------------------------------------------------------------------------
  584.     //
  585.     //  GetScheduleEntryProperties
  586.     //      Returns an enumeration of all guide data properties for
  587.     //      the schedule entry with the given Description.ID.
  588.     //
  589.     //  Parameters
  590.     //      varScheduleEntryDescriptionID 
  591.     //          Variant containing the unique identifier for the schedule
  592.     //          entry for which properties are requested.
  593.     //
  594.     //      IEnumGuideDataProperties **
  595.     //          Location in which a reference to the resulting
  596.     //          IEnumGuideDataProperties is placed.  The caller must release
  597.     //          this reference when finished with it.
  598.     //
  599.     //  Required Properties
  600.     //      The following properties MUST be included in the returned
  601.     //      property enumeration.
  602.     //
  603.     //      Description.ID
  604.     //          Uniquely identifies a schedule entry.
  605.     //
  606.     //      Description.Version
  607.     //          Identifies the current version of the properties associated
  608.     //          with this program.
  609.     //
  610.     //      Time.Start
  611.     //          The starting time and date of this schedule entry.
  612.     //
  613.     //      Time.End
  614.     //          The ending time and date of this schedule entry.
  615.     //
  616.     //      Schedule.Program
  617.     //          The Description.ID of the program that will play at the
  618.     //          time specified by this schedule entry.
  619.     //
  620.     //      Schedule.Service
  621.     //          The Description.ID of the Service that carries the
  622.     //          program that will play at the time specified by this
  623.     //          schedule entry.
  624.     // 
  625.     [helpstring("Returns an enumeration of all guide data properties for the schedule entry with the given Description.ID.")]
  626.     HRESULT
  627.     GetScheduleEntryProperties (
  628.         [in]           VARIANT                      varScheduleEntryDescriptionID,
  629.         [out, retval]  IEnumGuideDataProperties **  ppEnumProperties
  630.         );
  631.  
  632. }
  633.  
  634.  
  635. //******************************************************************************
  636. //
  637. //  IGuideDataLoader
  638. //
  639. // All Guide Data Loaders MUST implement this interface.  It is how they are
  640. // provided with the IGuideData interface that they will use.
  641. //
  642. // {4764ff7c-fa95-4525-af4d-d32236db9e38}
  643. [
  644.     object,
  645.     uuid(4764ff7c-fa95-4525-af4d-d32236db9e38),
  646.     helpstring("IGuideDataLoader Interface"),
  647.     pointer_default(unique)
  648. ]
  649. interface IGuideDataLoader : IUnknown
  650. {
  651.     HRESULT Init([in] IGuideData *pGuideStore);
  652.     HRESULT Terminate();
  653. };
  654.  
  655. [
  656.     uuid(8224A083-7F8C-432D-B83E-3C5E9BDE3528),
  657.     version(1.0),
  658.     helpstring("psisload 1.0 Type Library")
  659. ]
  660. library PSISLOADLib
  661. {
  662.     importlib("stdole32.tlb");
  663.     importlib("stdole2.tlb");
  664.  
  665.     [
  666.         uuid(14EB8748-1753-4393-95AE-4F7E7A87AAD6),
  667.         helpstring("TIFLoad Class")
  668.     ]
  669.     coclass TIFLoad
  670.     {
  671.         interface IGuideDataLoader;
  672.         interface IGuideDataEvent;
  673.     };
  674. };
  675.  
  676. cpp_quote("#if ( _MSC_VER >= 800 )")
  677. cpp_quote("#pragma warning(default:4201)    /* Nameless struct/union */")
  678. cpp_quote("#endif")
  679.